
(function (template) {  
	var templateConfig = {
		obj : {},
		convert : function(field, value){
			return value;
		}
	};
	
	function build (config, _temp) {  
		var _data = config.obj;
        return _temp.replace(/{.+?}/g, function (_$) {  
            var _key = _$.replace(/[{=}]/g, ''); var _value = _data[_key];  
            if ($.isArray(_value))  
                return $('<div></div>').append($('#build_' + _key).build(_value)).html();  
            else  
                return config.convert(_key, _value) || '';  
        });  
    };
    
    
    template.fn.extend({  
    	databind: function (config) {  
        	var finalConfig = $.extend(templateConfig, config); 
            var _temp = this[0].outerHTML; 
            var result = build(finalConfig, _temp);
            return $(result);  
        }
    }); 
})(jQuery);